<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>async函数</title>
</head>

<body>
  <script>
    // async 函数
    /* async function fn() {
      // 返回的结果不是一个 Promise 类型的对象，返回值就是成功 Promise 对象
      return '尚硅谷'
    }

    const result = fn();
    console.log(result); // promise函数 {<fulfilled>: '尚硅谷'} */

    /* async function fn() {
      // 抛出错误，返回的结果是一个失败的 Promise
      throw new Error('出错了');
    }

    const result = fn();
    console.log(result); // promise函数 {<rejected>: '出错了'} */

    async function fn() {
      // 返回的结果如果是一个 Promise 对象
      return new Promise((resolve, reject) => {
        // resolve('成功的数据');
        reject('失败的数据');
      })
    }

    const result = fn();
    // 调用 then
    result.then((value) => {
      console.log(value)
    }, reason => {
      console.warn(reason)
    })
  </script>
</body>

</html>